package kaka.utils
{
	import mx.controls.Alert;
	import mx.utils.StringUtil;
	import mx.validators.StringValidator;

	public class ValidatorUtils
	{
		public function ValidatorUtils()
		{
		}
		//验证Email地址
		public static var EmailExp:RegExp=/(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
		//验证电话号码
		public static var PhoneExp:RegExp=/^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/;
		//验证6-18位由数字、26个英文字母或者下划线组成的字符串
		public static var charNumExp:RegExp=/^\w{5,17}$/;
		//匹配正浮点数
		public static var positiveNumber:RegExp=/^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
		
		/**
		 * 验证字符串
		 * @param str    需要被验证的字符串
		 * @param type   执行的验证类型列表 <br><strong> for example : [NumberExp,EmailExp] </strong></br>
		 * 
		 * @return 验证成功返回true,否则返回false
		 **/
		public static function test(str:String,type:Array):*
		{
			
			for(var i:int=0;i<type.length;i++)
			{
				var typeTmp:RegExp=type[i] as RegExp;
				switch(typeTmp)
				{
					case positiveNumber:
						if(!positiveNumber.test(str))
						{
							Alert.show("请输入正确格式的数字。");
							return false;
						}
						else
							return true;
					case EmailExp:
						if(!EmailExp.test(str))
						{
							Alert.show("请输入正确的Email格式。");
							return false;
						}
						else
							return true;
					case PhoneExp:
						if(!PhoneExp.test(str))
						{
							Alert.show("请输入正确的电话号码格式。");
							return false;
						}
						else
							return true;
					case charNumExp:
						if(!charNumExp.test(str))
						{
							Alert.show("密码只能是由数字、26个英文字母或者下划线组成的6-18位字符。");
							return false;
						}
						else
							return true;
				}
			}
		}
		
	}
}